Banco de dados Oracle HOWTO  
Paul Haigh, paul@nailed.demon.co.uk,  
V1.2, 4 de agosto de 1998
Traduzido por Marcelo Martim Marques, mmmarq@zaz.com.br  20 de maio de 1999

Um guia para instalar e configurar o Servidor de Banco de dados Oracle em um
sistema Linux
  
Indice  

1. Introducao  
  
     1.1 Historico da versao  
     1.2 Direitos autorais  
     1.3 Retratacao  
     1.4 Sobre o HOWTO  
     1.5 Exigencias  
     1.6 Noticias da Oracle Corporation  
  
2. Instalando o Software Oracle  
  
     2.1 Preparacao do servidor  
        2.1.1 Criar um usuario do Oracle  
     2.2 Instalando do CDROM  
     2.3 Tarefas de Instalacao  
        2.3.1 Tarefas para Root  
        2.3.2 Tarefas para Oracle  
        2.3.3 Coisas que voce pode remover  
  
3. Criando um Banco de dados  
  
     3.1 Criando o arquivo de Inicializacao  
        3.2 Criando o Database Install Script  
        3.3 Executando o Database Installation Script  
        3.4 Inicializando o Database  
        3.5 Finalizando o Database  
        3.6 Criando um Default User  
  
4. Configurando SQL*Net no Server  
  
     4.1 tnsnames.ora  
     4.2 listener.ora  
     4.3 sqlnet.ora  
     4.4 Inicializando e finalizando o Listeners  
  
5. Configuracao Client  
  
     5.1 Clientes de Windows  
     5.2 Clients Unix  
  
6. Startup e Shutdown automatico  
  
     6.1 dbstart & dbstop  
     6.2 init.d & rc.d  
  
7. Outros Bits  
  
     7.1 Agente inteligente  
  
8. Troubleshooting  
  
     8.1 Eu nao posso criar um banco de dados quando usado Oracle 7.2.x.  
     8.2 Estao ocorrendo segmentation faults  
  
9. Creditos  
______________________________________________________________________  
  
1.  Introducao  

  
1.1.  Historico da versao  
  
.  v0.1 - 21 Feb 1998 - Paul Haigh - Versao Original.  
  
. v0.2 - 01 Mar 1998 - Paul Haigh - Comentarios de Proofreaders Added.  
  
.  v1.0 - 10 Mar 1998 - Paul Haigh - Primeiro Release para LDP.  
  
. v1.1 - 20 Jun 1998 - Paul Haigh - Incluindo secao de troubleshooting &  
  general tidyup.  
  
.  v1.2 - 04 Aug 1998 - Paul Haigh - Incluindo Oracle Corp News & Removed  
   Secao de Acrescimos Futuros.  

  
1.2.  Copyright  
  
The Oracle Database HOWTO copyright (c) 1998, Paul Haigh.  
  
Como  todo  o Linux  HOWTO, ele  pode  ser  reproduzido  e  distribuido  em
todo  ou em  parte,  em qualquer  meio, fisico ou  eletronico,  mantendo os
direitos  autorais  em todas as copias.
  
A redistribuicao comercial e permitida e encorajada; porem o autor gostaria
de ser notificado de tais distribuicoes. Voce  pode traduzir  este HOWTO em
qualquer idioma, desde que mantida as declaracoes  de direitos  autorais  e
retratacao intactas, e que voce mencione que traduziu o documento.  

  
1.3.  Retratacao  
  
Enquanto  eu  tentei incluir  as  mais  corretas e  atualizadas informacoes
disponivel para mim, eu nao posso garantir que o uso  das informacoes deste
documento nao resulte em perda de dados ou equipamentos. Eu nao dou NENHUMA
GARANTIA  sobre  a informacoes  deste  HOWTO e  nao me responsabilizo pelos
resultados decorrentes do uso das informacoes deste HOWTO.

  
1.4.  Sobre o HOWTO  
  
Neste  HOWTO  eu tentarei  abordar  a instalacao  e administracao basica de
um banco de dados Oracle em uma maquina Linux. Em particular eu descreverei
a instalacao do  Oracle Server, a configuracao do SQL*Net e  a configuracao
Client.
  
Este  documento nao e  um tutorial de como usar ou administrar um banco  de
dados Oracle, se e isso  que voce esta  procurando, consulte  livros destes
assuntos publicados pela O'Reilly and Associates.  
  
Eu  tambem nao  vou cobrir  o desenvolvimento  de programas  para Oracle no
UNIX. Se isto for necessario, eu  recomendaria a  compra do SCO Development
System (para OpenServer 5.x) da SCO que pode ser obtido  por um preco muito
razoavel de US$19, no site www.sco.com.

  
1.5.  Exigencias  
  
Eu  estou assumindo  que voce possua todos os itens necessarios para seguir
este HOWTO.
  
.  Oracle Server CD for SCO Openserver (Version 7.3.3.0.0.)  
   Esta  deve ser  uma copia  legal.  Se lembre  que o Oracle e um produto,
   e  que a  companhia  cobra  pelos seus  produtos.   Se voce  quer um SQL
   compliant  database  use o PostgresSQL  ou semelhante. Tambem e possivel
   instalar o Oracle com uma licenca de 60 dias para avaliacao, baixavel no
   site  da  Oracle.  Eu  nao  tentei  isto  pessoalmente  e  portanto, nao
   verifiquei.
  
.  Um Servidor Linux  
   Voce nao estaria lendo isto sem um ...estaria?
  
.  Kernel 2.0.30+  
   Eu nao posso garantir que estas instrucoes serao precisas para  qualquer
   outro Kernel. (Eu nao estou garantindo isto para qualquer 2.0.30...).  

.  iBCS  
   E  muito  importante ter  ele instalado e trabalhando com a versao  mais
   recente possivel  para sua plataforma.
   (Eu estou usando iBCS-2.0-10.i386.rpm da Redhat Linux).
  
.  Muito espaco de disco  
   600 Mb+ e uma quantia razoavel. E possivel instalar  com menos mas  voce
   precisaria fazer alguns sacrificios, eu nunca gosto de comecar com isso.
   Porem, eu tentarei  mostrar algumas  areas para podermos liberar  espaco
   em disco.

.  32Mb+ Ram  
   Eu  sei  que isto  soa muito, especialmente  se tratando do Linux,  mas
   lembre-se que o Oracle e um pacote complexo de programas.  Voce nao tem
   as mesmas reservas com SCO! Nao estou dizendo que o Oracle nao trabalha
   com  menos, so  que isto  e  menos do  que a  Oracle recomenda e eu nao
   sugiro isto.
  
.  Licencas do Oracle  
   Eu  sei  que  eu ja  mencionei isto mas eu quero deixar claro pois isto
   e importante. Usar Software Oracle sem uma licenca e ilegal.  


1.6.  Noticias da Oracle Corporation  
  
A  Oracle  se  curvou a pressao da comunidade Linux. A Oracle  Corporation
decidiu portar o Oracle 8 oficialmente para o Linux na plataforma  (i386).
Este porte deve ser lancado em dezembro/1998, conforme  o site da  Oracle.
Melhor ainda, o Oracle  tambem estara portando Aplicacoes do Oracle para a
plataforma linux.  Elas deverao  estar disponiveis no primeiro semestre de
1999, de acordo com o site da Oracle.  
  
Referencias:  
  
.  http://www.oracle.com/html/linux.html  
  
.  http://www.news.com/News/Item/0,4,24436,00.html  
  
.  http://www.zdnet.com/pcweek/news/0720/20morac.html  

  
2.  Instalando o Software Oracle  

  
2.1.  Preparando o Servidor  

  
2.1.1.  Criando um usuario Oracle  
  
O  Oracle exige um usuario para gerenciar  o banco de  dados. Inicialmente
nos nao precisaremos "relinkar"  o kernel  do  Oracle (veremos  sobre isto
depois)  iremos  aceitar  o  defalt para  o usuario e grupo de trabalho do
Oracle. Isto inclui um usuario ORACLE e um grupo denominado DBA.
  
  
1. Logue como  Root  
  
  
2. Crie o usuario oracle e o grupo dba.  
  
______________________________________________________________________  
       $ groupadd dba
       $ useradd  oracle
______________________________________________________________________  


3. Certifique-se de que o home do usuario oracle foi criado
______________________________________________________________________  
       $ mkdir /home/oracle  
       $ mkdir /home/oracle/7.3.3.0.0 (Verso do Oracle)  
       $ chown -R oracle.dba /home/oracle
______________________________________________________________________  


2.2.  Instalando do CDROM  
  
Infelizmente  o  Oracle  Installer  no disco  para SCO nao  ira funcionar.
Pois  varios  problemas  poderiam  ocorrer,  inclusive  core  dumps.  Para
evitar   isto temos  que  copiar  os   arquivos  manualmente  do  CDROM  e
descompacta-los: (Verifique se o CDROM esta montado).

1. Logue como Oracle  

2. Va ate o diretorio /home/oracle/7.3.3.0.0.  

3. Copie todos os programas de instalacao do CDROM
______________________________________________________________________  
       $ cp -a /mnt/cdrom/* .
______________________________________________________________________  
  

4. Descompacte todos os arquivos do Oracle que estavam no CDROM.  
______________________________________________________________________  
       $ find . -name *_ -exec ~/7.3.3.0.0/orainst/oiuncomp {} \;
______________________________________________________________________  
  
  
2.3.  Tarefas de Instalacao  


2.3.1.  Tarefas para Root  


Inclua estas linhas no arquivo /etc/profile ou no .profile de cada usuario
do Oracle.
______________________________________________________________________  
       # Oracle Specific  
       ORACLE_HOME=/home/oracle/7.3.3.0.0  
       ORACLE_SID=orcl  
       ORACLE_TERM=vt100  
       export ORACLE_HOME ORACLE_SID ORACLE_TERM  
  
       # Alter path for Oracle  
       PATH="$PATH:$ORACLE_HOME/bin"
______________________________________________________________________  

Precisamos mudar o dono e as permissoes para melhorar o acesso ao Oracle.  
______________________________________________________________________  
       $ chown root.root $ORACLE_HOME/bin/osh  
       $ chmod u+s $ORACLE_HOME/bin/osh
______________________________________________________________________  
  
  
2.3.2.  Tarefas para o Oracle  
  
Mude as permissoes dos arquivos do Oracle garantindo seu funcionamento.  
______________________________________________________________________  
       $ chmod +x $ORACLE_HOME/bin/*  
       $ chmod u+s $ORACLE_HOME/bin/oracle
______________________________________________________________________  

As Ferramentas do Oracle requerem a existencia do diretorio
$ORACLE_HOME/tool_name/mesg.  Depois  mova os  arquivos  msb do  diretorio
msg_ship para os diretorios mesg.
_______________________________________________________________________
       $ mv $ORACLE_HOME/plsql/mesg/mesg_ship/* $ORACLE_HOME/plsql/mesg/.  
       $ mv $ORACLE_HOME/rdbms/mesg/mesg_ship/* $ORACLE_HOME/rdbms/mesg/.  
       $ mv $ORACLE_HOME/svrmgr/mesg/mesg_ship/* $ORACLE_HOME/svrmgr/mesg/.
_______________________________________________________________________

Crie os seguintes diretorios caso eles nao existam:  

______________________________________________________________________  
       $ mkdir $ORACLE_HOME/rdbms/log  
       $ mkdir $ORACLE_HOME/rdbms/audit  
       $ mkdir $ORACLE_HOME/network/log
______________________________________________________________________  


2.3.3.  Coisas que poderao ser removidas  
  
Os seguintes diretorios poderao ser removidos com seguranca:  
  
.  $ORACLE_HOME/guicommon2/  
  
.  $ORACLE_HOME/ctx/  
  
.  $ORACLE_HOME/md/  
 
.  $ORACLE_HOME/mlx/  
  
.  $ORACLE_HOME/precomp/  
  
.  $ORACLE_HOME/slax/  

  
3.  Criando um Banco de dados  
  
Agora que o Oracle Server  esta instalado nos precisamos criar um banco de
dados para testar a instalacao. Se  voce  esta usando  o  Oracle  7.2.x ou
anterior, por favor leia o secao de troubleshooting.  
  
 
3.1.  Crie o Arquivo de inicializacao  
  
Copie o arquivo $ORACLE_HOME/dbs/init.ora para $ORACLE_HOME/dbs/initorcl.ora:  
______________________________________________________________________  
       $ cd $ORACLE_HOME/dbs  
       $ cp init.ora initorcl.ora
______________________________________________________________________  
  
Modifique e adicione as seguintes linhas:  
______________________________________________________________________
       db_name = orcl  
       COMPATIBLE=7.3.3.0.0
______________________________________________________________________  

  
3.2.  Criando o Database Install Script  
  
Crie um arquivo de script chamado makedb.sql no diretorio $ORACLE_HOME/dbs:  
______________________________________________________________________
       connect internal  
       startup nomount  
       set echo on  
       spool makedb.log  
       create database orcl  
               maxinstances 1  
               maxlogfiles  8  
               datafile '$ORACLE_HOME/dbs/orcl_syst_01.dbf' size 40M reuse logfile  
                        '$ORACLE_HOME/dbs/orcl_redo_01.dbf' size 1M reuse,
                        '$ORACLE_HOME/dbs/orcl_redo_02.dbf' size 1M reuse,
                        '$ORACLE_HOME/dbs/orcl_redo_03.dbf' size 1M reuse;
                        .$ORACLE_HOME/rdbms/admin/catalog.sql  
       create tablespace rollback  
               datafile '$ORACLE_HOME/dbs/orcl_roll_01.dbf' size 8.5M reuse;
       create tablespace temp  
               datafile '$ORACLE_HOME/dbs/orcl_temp_01.dbf' size 5M reuse temporary;  
       create tablespace users  
               datafile '$ORACLE_HOME/dbs/orcl_user_01.dbf' size 10M reuse;
       create rollback segment r1 tablespace rollback  
               storage ( optimal 5M );  
               alter rollback segment r1 online;  
       connect system/manager  
                        .$ORACLE_HOME/rdbms/admin/catdbsyn.sql
       connect internal  
                        .$ORACLE_HOME/rdbms/admin/catproc.sql
       connect system/manager  
                        .$ORACLE_HOME/sqlplus/admin/pupbld.sql  
       spool off  
       exit       
______________________________________________________________________  


3.3.  Executando o Database Installation Script  
  
Execute o svrmgrl e chame o script:  
______________________________________________________________________  
       $ cd $ORACLE_HOME/dbs  
       $ svrmgrl  
  
       Oracle Server Manager Release 2.3.3.0.0 - Production  
  
       Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.  
  
       Oracle7 Server Release 7.3.3.0.0 - Production Release  
       PL/SQL Release 2.3.3.0.0 - Production  
  
       SVRMGR> connect internal  
       Connected.  
       SVRMGR> startup nomount  
       ORACLE instance started.  
       Total System Global Area       4313312 bytes  
       Fixed Size                       41876 bytes  
       Variable Size                  4140364 bytes  
       Database Buffers                122880 bytes  
       Redo Buffers                      8192 bytes  
       SVRMGR> @makedb  
       <loads of messages>  
       SVRMGR> exit  
       Server Manager complete.
______________________________________________________________________  
  
  
3.4.  Inicializando o Banco de dados  
  
Primeiramente,  nos  precisamos  entrar  em  modo  de  gerenciamento  (nos
automatizaremos isto mais tarde).  Para chamar o banco de dados Oracle nos
precisamos  executar o comando  startup como anteriormente:  
______________________________________________________________________  
       $ svrmgrl  
  
       Oracle Server Manager Release 2.3.3.0.0 - Production  
  
       Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.  
  
       Oracle7 Server Release 7.3.3.0.0 - Production Release  
       PL/SQL Release 2.3.3.0.0 - Production  
  
       SVRMGR> connect internal  
       Connected.  
       SVRMGR> startup  
       ORACLE instance started.  
       Total System Global Area       4313316 bytes  
       Fixed Size                       41876 bytes  
       Variable Size                  4140368 bytes  
       Database Buffers                122880 bytes  
       Redo Buffers                      8192 bytes  
       Database mounted.  
       Database opened.  
       SVRMGR> exit  
       Server Manager complete.
______________________________________________________________________  

  
3.5.  Finalizando o Banco de dados  
  
E importante lembrar que, reiniciando o servidor Linux sem antes finalizar
o banco de dados Oracle, torna o risco de se corromper os dados muito alto.  

Assim, antes  de reiniciar  ou desligar  o Linux, e importante  executar o
seguinte procedimento para fechar o banco de dados:  
______________________________________________________________________  
       $ svrmgrl  
  
       Oracle Server Manager Release 2.3.3.0.0 - Production  
  
       Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.  
  
       Oracle7 Server Release 7.3.3.0.0 - Production Release  
       PL/SQL Release 2.3.3.0.0 - Production  
  
       SVRMGR> connect internal  
       Connected.  
       SVRMGR> shutdown  
       Database closed.  
       Database dismounted.  
       ORACLE instance shut down.  
       SVRMGR> exit  
       Server Manager complete.
______________________________________________________________________  
  
  
3.6.  Criando um usuario default  
  
O  banco  de  dados,  quando  criado, tem  dois usuarios especiais que sao
automaticamente criados.

Sao eles:  
______________________________________________________________________
       Username                Password  
  
       SYSTEM                  MANAGER  
       SYS                     change_on_install
______________________________________________________________________  
  
Estes usuarios normalmente sao usados para acessar informacoes basicas nos
dicionarios do banco de dados. Uma otima ideia seria mudar a senha  desses
usuarios o mais cedo possivel.
  
Isto pode ser feito da seguinte maneira:  
______________________________________________________________________
  sqlplus system/manager  
  
  SQL*Plus: Release 3.3.3.0.0 - Production on Sat Feb 21 12:43:33 1998  
  
  Copyright (c) Oracle Corporation 1979, 1996.  All rights reserved.  
  
  
  Connected to:  
  Oracle7 Server Release 7.3.3.0.0 - Production Release  
  
  SQL> alter user system identified by <newpassword>;  
  
  User altered.  
  
  SQL> alter user sys identified by <newpassword>;  
  
  User altered.  
  
  SQL> exit;  
  Disconnected from Oracle7 Server Release 7.3.3.0.0 - Production Release  PL/SQL Release 2.3.3.0.0 - Production  
______________________________________________________________________  
  
Note que o usuario system/manager e identico ao usuario root em uma maquina
UNIX (em materia de permissoes), portanto, nos precisamos criar um usuario
com  menos  privilegios,  evitando   maiores  problemas.   (lembre-se   de
inicializar o banco de dados antes de tentar criar um usuario)
  
Conectando-se ao SQL*Plus e criando um usuario:  
______________________________________________________________________  
       $ sqlplus system/manager  
  
       SQL*Plus: Release 3.3.3.0.0 - Production on Sat Feb 21 12:43:33 1998  
  
       Copyright (c) Oracle Corporation 1979, 1996.  All rights reserved.  
  
  
       Connected to:  
       Oracle7 Server Release 7.3.3.0.0 - Production Release  
       PL/SQL Release 2.3.3.0.0 - Production  
  
       SQL> create user <user> identified by <psw>  
         2  default tablespace users  
         3  temporary tablespace temp;  
  
       User created.  
  
       SQL> grant connect, resource to <user>  
  
       Grant succeeded.  
  
       SQL> exit  
       Disconnected from Oracle7 Server Release 7.3.3.0.0 - Production Release PL/SQL Release 2.3.3.0.0 - Production
______________________________________________________________________  
  
Agora que voce tem um novo usuario no sistema, podemos  acessa-lo com este
novo usuario. Para se logar ao banco de dados Oracle:  
______________________________________________________________________  
       $ sqlplus <user>/<password>
______________________________________________________________________  
  
Se nao ocorrer mensagens de erros, significa que seu banco de dados Oracle
esta em perfeito funcionamento. Se voce nunca precisar que outras  pessoas
se conectem ao banco de dados remotamente, entao o trabalho esta completo,
desfrute!
  
Porem, se como a maioria  das pessoas, voce quiser configurar o sistema de
acesso  remoto,  de forma  que voce  possa se conectar de outras maquinas,
continue lendo.

  
4.  Configurando o SQL*Net no Servidor  
  
Todos estes arquivos configuram o software de networking do Oracle (SQL*Net,
e Net8 for Oracle8).

Estes arquivos devem ter sido criados no servidor, no diretorio
$ORACLE_HOME/network/admin.
  

4.1.  tnsnames.ora  
  
O arquivo TNSNAMES.ORA identifica os servicos disponiveis em sua maquina.  

Aqui,  em  cada  segmento, descreveremos  todos os  bancos de  dados que o
servidor  mantem. Para  cada segmento do  banco de dados  em seu  servidor
adicione uma secao, como abaixo:
_____________________________________________________________________
       orcl.world =  
         (DESCRIPTION =  
           (ADDRESS_LIST =  
               (ADDRESS =  
                 (COMMUNITY = tcp.world)  
                 (PROTOCOL = TCP)  
                 (Host = <INSERT HOST NAME OF SERVER HERE> )  
                 (Port = 1521)  
               )  
               (ADDRESS =  
                 (COMMUNITY = tcp.world)  
                 (PROTOCOL = TCP)  
                 (Host = <INSERT HOST NAME OF SERVER HERE> )  
                 (Port = 1526)  
               )  
           )  
           (CONNECT_DATA = (SID = ORCL)  
           )  
         )  
______________________________________________________________________  
  
  
4.2.  listener.ora  
  
O  arquivo  listener.ora  contem  a  descricao  dos  servicos que permitem
coneccao com outras maquinas, quando solicitadas para o listner do servidor.  
  
O  arquivo  contem  secoes para  o  nome do listner, enderecos do listner,
bancos de dados disponivel ao listner e os parametros de configuracao.  
  
Eis um exemplo:  
______________________________________________________________________  
       # Name of listener and addresses to listen on  
       LISTENER =  
               ( ADDRESS_LIST =  
                       (ADDRESS =  
                               (PROTOCOL=tcp)  
                               (HOST=<INSERT HOST>)  
                               (PORT=1521)  
                               (COMMUNITY=UK_SUP_TCPIP)  
                       )  
                       (ADDRESS =  
                               (PROTOCOL=ipc)  
                               (KEY=700)  
                               (COMMUNITY=UK_SUP_TCPIP)  
                       )  
               )  
  
       # List of services served by this listener  
       SID_LIST_LISTENER=  
               (SID_LIST=  
                       (SID_DESC=  
                               (SID_NAME=orcl)
                               (ORACLE_HOME=/home/oracle/7.3.3.0.0)  
                       )  
               )  
  
       # Start of configuration parameters.  
       TRACE_LEVEL_LISTENER=OFF  
       TRACE_FILE_LISTENER = "listener"  
       LOG_FILE_LISTENER = "listener"  
       CONNECT_TIMEOUT_LISTENER = 10  
       STOP_LISTENER = YES  
       DBA_GROUP = dba
______________________________________________________________________  
  
  
4.3.  sqlnet.ora  
  
O  arquivo  sqlnet.ora  contem  a configuracao  de  cada  no  da  rede  em
particular. Ele e independente do numero de bancos de  dados ou do  numero
de listeners.  A parte mais importante deste arquivo sao  as configuracoes
disponveis no Dead Connection Timeout.
  
O Dead Connection Timeout confere todo processo  que entra em  um banco de
dados e assegura que o cliente  ainda esta  respondendo. Se  o cliente (de
qualquer  tipo)  nao  estiver  respondendo  ao  Oracle,  o  processo  sera
encerrado no servidor.
  
Isto  e  muito util  se  voce tem  muitos clientes que  acessam o banco de
dados, especialmente durante a fase desenvolvimento, quando esses clientes
tem grandes chances de encerrar  bruscamente  as secoes  do banco de dados
Oracle.
  
Esta e uma copia de meu proprio arquivo sqlnet.ora para que voce examine:  
______________________________________________________________________
TRACE_LEVEL_CLIENT = OFF  
sqlnet.expire_time = 30         # The number of seconds between client checks.
names.default_domain = world
name.default_zone = world
______________________________________________________________________  
  
  
4.4.  Iniciando e finalizando os Listeners  
  
Agora  que  a  configuracao  dos  Listners e  do SQL*Net esta completa nos
podemos tentar nos conectarmos ao banco de dados que  mantem o software de
networking. (Antes  de nos usarmos vinculos diretos para o banco de dados,
simularemos uma conexao com uma maquina de cliente remoto).
  
Para iniciar o Listner usando a configuracao acima:  
______________________________________________________________________  
       $ lsnrctl  
  
       LSNRCTL for SCO System V/386: Version 2.3.3.0.0 - Production on 23-FEB-98 20:38:25  
  
       Copyright (c) Oracle Corporation 1994.  All rights reserved.  
  
       Welcome to LSNRCTL, type "help" for information.  
  
       LSNRCTL> start  
       Starting /home/oracle/7.3.3.0.0/bin/tnslsnr: please wait...  
  
       TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production  
       System parameter file is /home/oracle/7.3.3.0.0/network/admin/listener.ora  
       Log messages written to /home/oracle/7.3.3.0.0/network/log/listener.log
       Listening on: (ADDRESS=(PROTOCOL=tcp)(DEV=6)(HOST=192.168.1.1)(PORT=1521))  
       Listening on: (ADDRESS=(PROTOCOL=ipc)(DEV=10)(KEY=700))  
  
       Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))
       STATUS of the LISTENER  
       ------------------------  
       Alias                     LISTENER  
       Version                   TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production  
       Start Date                23-FEB-98 20:38:50  
       Uptime                    0 days 0 hr. 0 min. 0 sec  
       Trace Level               off  
       Security                  OFF  
       SNMP                      ON  
       Listener Parameter File   /home/oracle/7.3.3.0.0/network/admin/listener.ora  
       Listener Log File         /home/oracle/7.3.3.0.0/network/log/listener.log
       Services Summary...  
         orcl          has 1 service handler(s)  
       The command completed successfully  
       LSNRCTL> exit
______________________________________________________________________  
  
Para finalizar os listeners:  
______________________________________________________________________  
  $ lsnrctl  
  
  LSNRCTL for SCO System V/386: Version 2.3.3.0.0 - Production on 23-FEB-98 20:43:20  
  
  Copyright (c) Oracle Corporation 1994.  All rights reserved.  
  
  Welcome to LSNRCTL, type "help" for information.  
  
  LSNRCTL> stop  
  Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))  
  The command completed successfully  
  LSNRCTL> exit  
______________________________________________________________________  
  
Se  voce  tem um  servidor  DNS que nao devolve  o  IP  especifico  para o
hostname, a  inicializacao e a finalizacao  do listener  pode levar alguns
minutos (2-3 mins. dependendo da configuracao do DNS (timeout)).  Se  isto
ocorrer, nao se preocupe, seja paciente.
  
  
5.  Configuracao do Clients  
  
5.1.  Cliente Windows  
  
A configuracao do SQL*Net em PC's que usam  versoes mais  novas  do Oracle
Client Software  e muito  simples. O  melhor (e mais facil) modo de se ter
uma  instalacao Client  trabalhando plenamente, e  usando  o  SQL*Net Easy
Configuration tool, desenvolvido pela Oracle.
  
Esta ferramenta e um tipo de wizard que guia o  usuario pela  configuracao
dos arquivos tnsnames.ora e sqlnet.ora.  
  
Selecione  "Add Databse alias"  e  digite  um  nome  para  o  alias quando
solicitado. Este alias e o nome  que  voce definira ao  banco de  dados, e
como  tal deve estar  igual  ao nome da base (oracle neste caso).  
  
Selecione TCP/IP como protocolo, e quando solicitado, o hostname da maquina
que hospeda o banco de dados e o nome do banco de dados.  
  
E isto.  
  
Porem, se voce nao tem o SQL*Net Configuration Tool nao se preocupe.  Voce
pode,   simplesmente,  criar  o  arquivo   tnsnames.ora  e  sqlnet.ora  no
diretorio  $ORACLE_HOME/network/admin  e  no  cliente exatamente como eles
estao no servidor.  Isto provera um alias igual ao do servidor (sempre uma
boa ideia de qualquer maneira).  

  
5.2.  Clientes Unix  
  
Clientes UNIX nao sao muito diferentes dos clientes Windows. Se voce tem o
Network  Manager  do  Oracle,  pode  usar  o  exemplo acima, se nao puder,
utilize a mesma configuracao dos arquivos no diretorio
$ORACLE_HOME/network/admin do servidor.

  
6.  inicializacao e Finalizacao Automatica  

  
6.1.  dbstart  & dbstop  
  
A inicializacao automatica a  finalizacao do  banco de dados  Oracle podem
ser  definidos (na versao 7.3.3.0.0) nos arquivos dbstart e dbshut,  ambos
criados pelo Oracle.  Estes  arquivos se baseiam na existencia  do arquivo
/etc/oratab para trabalhar (embora alterando os  arquivos dbshut e dbstart
isto possa ser mudado).
  
O formato do arquivo /etc/oratab e o seguinte:  
______________________________________________________________________
       SID:ORACLE_HOME:AUTO
______________________________________________________________________  
  
Um exemplo:  
______________________________________________________________________
       orcl:/home/oracle/7.3.3.0.0:Y  
       leaveup:/home/oracle/7.3.2.1.0:N
______________________________________________________________________  
  
  
6.2.  init.d  & rc.d  
  
Para  a  inicializacao  e  a  finalizacao  automatica  do  banco de  dados
requer a modificacao das rotinas de inicializacao do Linux. Isto e bastante
facil,  embora eu devesse mostrar  aqui que isto pode variar dependendo da
distribuicao  do  Linux  (slackware,  debian,  redhat,  etc) eu  mostrarei
exemplos para o  Redhat Linux 5.0.  Para  modificar  outras  distribuicoes
do Linux, por favor veja sua documentacao. (Embora isso devesse  funcionar
em qualquer Unix baseado no padrao Sys V).
  
Primeiramente,  precisamos  definir  a  execucao  do  dbshut e  dbstart no
diretorio /etc/rc.d/init.d .

Crie o arquivo /etc/rc.d/init.d/oracle:
______________________________________________________________________
  #!/bin/sh  
  #  
  # /etc/rc.d/init.d/oracle  
  # Description: Starts and stops the Oracle database and listeners  
  # See how we were called.  
  case "$1" in  
    start)  
          echo -n "Starting Oracle Databases: "  
          echo "----------------------------------------------------" >> /var/log/oracle  
          date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle  
          echo "----------------------------------------------------" >> /var/log/oracle  
          su - oracle -c dbstart >> /var/log/oracle  
          echo "Done."  
          echo -n "Starting Oracle Listeners: "  
          su - oracle -c "lsnrctl start" >> /var/log/oracle  
          echo "Done."  
          echo ""  
          echo "----------------------------------------------------" >> /var/log/oracle  
          date +"! %T %a %D : Finished." >> /var/log/oracle  
          echo "----------------------------------------------------" >> /var/log/oracle  
          touch /var/lock/subsys/oracle  
          ;;  
    stop)  
          echo -n "Shutting Down Oracle Listeners: "  
          echo "----------------------------------------------------" >> /var/log/oracle  
          date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle  
          echo "----------------------------------------------------" >> /var/log/oracle  
          su - oracle -c "lsnrctl stop" >> /var/log/oracle  
          echo "Done."  
          rm -f /var/lock/subsys/oracle  
          echo -n "Shutting Down Oracle Databases: "  
          su - oracle -c dbshut >> /var/log/oracle  
          echo "Done."  
          echo ""  
          echo "----------------------------------------------------" >> /var/log/oracle  
          date +"! %T %a %D : Finished." >> /var/log/oracle  
          echo "----------------------------------------------------" >> /var/log/oracle  
          ;;  
    restart)  
          echo -n "Restarting Oracle Databases: "  
          echo "----------------------------------------------------" >> /var/log/oracle  
          date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle  
          echo "----------------------------------------------------" >> /var/log/oracle  
          su - oracle -c dbstop >> /var/log/oracle  
          su - oracle -c dbstart >> /var/log/oracle  
          echo "Done."  
          echo -n "Restarting Oracle Listeners: "  
          su - oracle -c "lsnrctl stop" >> /var/log/oracle  
          su - oracle -c "lsnrctl start" >> /var/log/oracle  
          echo "Done."  
          echo ""  
          echo "----------------------------------------------------" >> /var/log/oracle  
          date +"! %T %a %D : Finished." >> /var/log/oracle  
          echo "----------------------------------------------------" >> /var/log/oracle  
          touch /var/lock/subsys/oracle  
          ;;  
    *)  
          echo "Usage: oracle {start|stop|restart}"  
          exit 1  
  esac  
______________________________________________________________________  
  
 
E necessario verificar se este arquivo inicializa e finaliza  corretamente
o banco de dados em seu sistema. Procure  no arquivo  /var/log/oracle  por
mensagens de erro.
  
Uma vez que esta rotina estiver  funcionando, nos  precisaremos  criar  os
links  simbolicos  para  inicializacao  e  finalizacao  com  vinculos  nos
diretorios de runlevel apropriados /etc/rc.d/rcX.d.
  
Os  seguintes  comandos garantirao  que o banco de dados  inicializara nos
niveis de execucao 2,3 e 4:  
______________________________________________________________________  
       $ ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle  
       $ ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle  
       $ ln -s ../init.d/oracle /etc/rc.d/rc4.d/S99oracle
______________________________________________________________________  
  
Para finalizar  o banco  de dados em  caso de reinicializacao do servidor,
nos precisaremos dos seguintes links:  
______________________________________________________________________  
       $ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle          # Halting  
       $ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle          # Rebooting
______________________________________________________________________  
  
  
7.  Outros Dados  

  
7.1.  Intelligent Agent  
  
Se voce necessitar  do Oracle Inteligent Agent, eu acredito que voce possa
usa-lo sem qualquer mudanca na configuracao. Para iniciar o IA digite:
______________________________________________________________________  
       $ lsnrctl dbsnmp_start
______________________________________________________________________  
  
  
Para finalizar o IA digite:  
  
______________________________________________________________________  
       $ lsnrctl dbsnmp_stop
______________________________________________________________________  
  
  
Nao  aparecera  qualquer mensagem que  indique  que a  inicializacao  ou a
parada  do  IA  tenha  ocorrido com sucesso. Porem,  se o  IA respondeu ao
Enterprise Manager no lado de cliente, assim eu so posso concluir que  ele
estara trabalhando.
  
  
8.  Troubleshooting  
  
Veja abaixo algumas sugestoes de socorro.  

  
8.1.  Eu nao consigo criar um banco de dados usando Oracle 7.2.x.  
  
Os arquivos trazidos pelo Oracle 7.2.x erram em assumir  que voce  utiliza
uma  configuracao de servidor paralelo.  O arquivo init.ora tem a seguinte
linha:
______________________________________________________________________  
       # define parallel server (multi-instance) parameters  
       ifile = ora_system:initps.ora
______________________________________________________________________  
  
Para corrigir o problema, simplesmente comente esta linha:  
______________________________________________________________________  
       # define parallel server (multi-instance) parameters  
       #ifile = ora_system:initps.ora
______________________________________________________________________  


8.2.  Estao ocorrendo Segmental Faults em svrmgrl nas versoes anteriores a
7.3.4.x.
  
Eu recebi informacoes de que varias pessoas tiveram este  problema. Gerald
Weber (gerald_weber@master.co.at) resolveu isto:  
  
______________________________________________________________________  
Oi Paul,  
  
Em  primeiro lugar obrigado por sua  ajuda, nenhuma das possiveis  causas
que  voce  apontou era  a responsavel  pelo meu problema.  O problema e o
proprio iBCS-emulator.

Parece  que  o  Oracle  executa  algumas chamadas  do sistema que nao sao
suportadas pela atual versao do iBCS.  

Olhe isto:  
  
<7>[22]615 sysconf(34)  
<7>iBCS2 unsupported sysconf call 34  
<7>[22]615 sysconf error return linux=-22 -> ibcs=22 <Invalid argument>  <7>[24]615 sysconf(34)  
<7>iBCS2 unsupported sysconf call 34  
<7>[24]615 sysconf error return linux=-22 -> ibcs=22 <Invalid argument>  
  
Solucao: conserte o iBCS-source aplicando o seguinte diff-pach:  
______________________________________________________________________
  
  --- sysconf.c   Sun Apr 19 19:19:15 1998  
  +++ sysconf.c.ori       Sun Apr 19 19:28:45 1998  
  @@ -60,7 +60,6 @@  
   #define _SC_JOB_CONTROL        5  
   #define _SC_SAVED_IDS  6  
   #define _SC_VERSION    7  
  -#define _SC_HACK_FOR_ORACLE 34  
  
   #define _SC_PAGESIZE   11  
  
  @@ -97,11 +96,6 @@  
                  case _SC_SAVED_IDS: {  
                          return (1);  
                  }  
  -  
  -               case _SC_HACK_FOR_ORACLE: {  
  -                 return (1);  
  -               }  
  -  
  
                  case _SC_PAGESIZE: {  
                    return PAGE_SIZE;
______________________________________________________________________  
  
  
9.  Creditos  
  
Este HOWTO  e baseado em um documento escrito por  Bob Withers,
(bwit@pobox.com). Informacoes  adicionais  tiradas  de  outros  documentos
escritos por  Georg Rehfeld (rehfeld@wmd.de) e David Mansfield
(david@claremont.com).
  
Revisao adicional feita por Bob Withers, Mark Watling
(mwatling@mjw-ltd.demon.co.uk), Peter Sodhi (petersodhi@unn.unisys.com), e
Greg Hankins (greg.hankins@cc.gatech.edu).
  
Meus  agradecimentos  pelo  grande  apoio de  todas as pessoas  envolvidas
na  elaboracao deste documento e nas pesquisas por elas feita.  Particular
agradecimento a Bob Withers e Mark Watling pelos comentarios adicionais  e
ajuda que me deram.
